Dimensions of Object-Based Language Design, 1987
نویسنده
چکیده
The design space of object-based languages is characterized in terms of objects, classes, inheritance, data abstraction, strong typing, concurrency, and persistence. Language classes (paradigms) associated with interesting subsets of these features are identified and language design issues for selected paradigms are examined. Orthogonal dimensions that span the object-oriented design space are related to non-orthogonal features of real languages. The self-referential application of object-oriented methodology to the development of object-based language paradigms is demonstrated. Delegation is defined as a generalization of inheritance and design alternatives such as non-strict, multiple, and abstract inheritance are considered. Actors and prototypes are presented as examples of classless (delegation based) languages. Processes are classified by their degree of internal concurrency. The potential inconsistency of object-oriented sharing and distributed autonomy is discussed, suggesting that compromises between sharing and autonomy will be necessary in designing strongly typed objectoriented distributed database languages. 1. Design Space for Object-Based Languages In order to examine design alternatives for object-based languages the following “dimensions” of language design are considered: objects classes inheritance data abstraction strong typing concurrency persistence Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commerical advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/ or specific permission. ici 1987 ACM O-8979 l-247-0/87/00 10-0168 $1.50 These features span the design space of object-based languages. Each relates to a different aspect of computational behavior. Objects are autonomous entities that respond to messages or operations and share a state. Classes classify objects by their common operations. Inheritance serves to classify classes by their shared behavior. Data abstraction hides the representation of data and the implementation of operations. Strong typing imposes static constraints on the appiicability of operations, both within and among objects. Concurrency allows objects to execute concurrently with other objects and to have internal concurrency. Persistence allows object identity to persist across applications and to be independent of values or keys used in object selection. Language classes worthy of special study are identified and the efficiency, simplicity, and methodology of the associated paradigms is examined. We first consider just objects, classes, and inheritance, then add data abstraction and strong typing, and finally consider concurrency and persistence. Along the way global properties of design dimensions such as consistency and orthogonality are introduced and related to non-orthogonal features that occur in real languages. 2. Objects, Classes, and Inheritance Objects have the following properties: object: An object has a set of “operations” and a “state” that remembers the effect of operations. Objects may be contrasted with functions, which have no memory. Function values are completely determined by their arguments, being precisely the same for each invocation. In contrast, the value returned by an operation on an object may depend on its state as well as its arguments. An object may learn from experience, its reaction to an operation being determined by its invocation history. The term “object-based language” may now be
منابع مشابه
Declarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کاملSpace as a Semiotic Object: A Three-Dimensional Model of Vertical Structure of Space in Calvino’s Invisible Cities
Following the “spatial turn” of the last 3 decades in humanities and social sciences and the structure of semiotic object, this research studies space as the main semiotic object of Calvino’s (1972) Invisible Cities. Significance of this application resides in examining the possibility of providing a more concrete methodology based on the integration of Zoran’s (1984) 3 vertical levels of const...
متن کاملJALDA's Interview with Professor Glenn Fulcher
Glenn Fulcher is the Professor of Applied Linguistics and Language Assessment in the English Department at the University of Leicester, UK. He got his PhD in Applied Linguistics and Language Testing from Lancaster University (1993) and his MA in Applied Linguistics from the University of Birmingham (1987). Professor Fulcher has been the editor of Sage's Language Testing (2006-2015) and an influ...
متن کاملGoals, Dimensions, and Design of Program Investigation
If we are keen to boost the process of language learning, we need to study every aspect and component of our course. To this end, we carry out an investigation in which every detail of the course is put under microscope. Assessment of a course is an attempt in which different type of information is gathered systematically in order to study the working of a language instruction program. Certainl...
متن کاملAvailability evaluation of Software architecture of object oriented Style using coloured Petri nets
Software architecture is one of the most fundamental products in the process of software development in the areas of behavioral or non- behavioral features like availability or transformability change. There are different ways to evaluate software architecture one of which is the creation of application model. An executable model of software architecture is an official description of architectu...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1999